/*
 * @path        : \threejs\src\utils\index.js
 * @Author      : yvangod
 * @since       : 2021-04-01 14:17:24
 * @LastAuthor  : yvangod
 * @lastTime    : 2021-04-01 14:18:29
 * @message     : 走好每一步，才能走的更快更稳
 */


/**
 * 数组的constructor
 * @const
 * @type {Array}
 */
 var ARRAY = Array;

 /**
  * 数组的prototype
  * @const
  * @type {Object}
  */
 var ARRAY_PROTOTYPE = ARRAY.prototype;
 /**
  * 代理函数
  * @param fn
  * @param context
  * @returns {*}
  */
 export function proxy(fn, context) {
   var args;
 
   if (!isFunction(fn)) {
     return undefined;
   }
 
   args = ARRAY_PROTOTYPE.slice.call(arguments, 2);
 
   return function () {
     return fn.apply(context || this, args.concat(ARRAY_PROTOTYPE.slice.call(arguments)));
   };
 }
 
 /**
  * 判断变量是否是函数
  * @param {*} obj 要判断的变量
  * @returns {boolean}
  */
 export function isFunction(obj) {
   return typeof obj === "function";
 }

